package com.example.demo.controller;

import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.example.demo.anno.MyLog;
import com.example.demo.base.BaseController;
import com.example.demo.model.SysLog;
import com.example.demo.utils.result.R;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import static com.example.demo.utils.constant.ResultMsgConsant.Page_Result_Key;

/**
 * <p>
 *  前端控制器,这里只要继承了BaseController即可实现单表的增删改查，
 *  当然，分页查询没有实现条件查询，如需要实现，重写该方法自行实现即可
 * </p>
 */
@Slf4j
@RestController
@RequestMapping("/test")
@Api(value="测试controller",tags={"日志记录测试接口"})
public class TestController extends BaseController {

    @MyLog("测试日志记录")
    @GetMapping("/test")
    @ApiOperation(value="测试方法" ,notes="生成日志测试方法")
    public String test(@RequestParam("name") String name)
    {
        log.info("-----TestController");
        return name;
    }

    @Override
    @MyLog("测试获取分页日志记录")
    @ApiOperation(value="日志记录" ,notes="获取分页日志记录")
    public R listByPage(Integer pageNum, Integer pageSize) {
        //获取查询的参数，这里就是用一个查询
        Object username = getParameterMap().get("name");

        //开启分页
        Page page = setPage(pageNum,pageSize);

        //拼装查询条件
        EntityWrapper<SysLog> wrapper = new EntityWrapper<>();
        if (username!=null)
            wrapper.like("name","%"+username.toString()+"%");

        //查询
        page = baseServiceImpl.selectPage(page,wrapper);

        return R.ok().put(Page_Result_Key,page);
    }
}
